using System;
using System.Collections.Generic;
using System.Text;
using BibliotecaCorrector;

namespace WindowsApplication1
{
    class ControladorAplicacion : IPalabraErroneaListener
    {

        private CorrectorOrtografico corrector;
        private ControladorCorrector controlCorrector;
        private FuenteDeTexto fuente;
        public ControladorAplicacion(CorrectorOrtografico corrector)
        {
            this.corrector = corrector;
            controlCorrector = corrector.getControlador();
            fuente = new FuenteDeTexto();
            //temporal
            controlCorrector.setIdioma(corrector.idioma);
            controlCorrector.setRuta(corrector.rutaDiccionarios);

            //Nos subscribimos para recibir eventos PalabraErronea
            controlCorrector.addPalabraErroneaListener(this);
        }

        public void modificaFuente(String palabra){
            char [] separadores = new char[3];
            separadores[0] = ' ';
            if (palabra.EndsWith(" ")) // se acaba de insertar un espacio
            {
                String[] text = palabra.Split(separadores);
               
                String ultima = text[text.Length-2];
                controlCorrector.corregir(ultima);
            }
            
            //fuente.ponPalabra(palabra);
            //controlCorrector.corregir(fuente);

        }



        #region Miembros de IPalabraErroneaListener

        public void onChange(object sender, PalabraErroneaEvent e)
        {
            System.Console.WriteLine("Recibido evento palabra erronea!!!");
            System.Console.WriteLine("La palabra: " + e.Palabra + " es erronea!!!");
            if (e.palabraNueva != null)
            {
                //Recibido evento para cambiar palabra
                System.Console.WriteLine("Cambiamos: la palabra: " + e.Palabra + " por : " + e.palabraNueva + "!!!");
                //Mostramos la interfaz del corrector, ya se vera si se puede mostras algo
                //de la aplicacion
                modificaFuenteTexto(e.Palabra, e.palabraNueva);
            }

        }

        #endregion
    }
}
